package com.jinmdz.fmis.api.api.model.funeral.negotiation;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jinmdz.fmis.core.annotation.AnDict;
import com.jinmdz.fmis.core.constant.EDictCode;
import com.jinmdz.fmis.dao.base.BaseItem;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 洽谈接运信息
 *
 * @author LiCongLu
 * @date 2020-02-16 15:01
 */
@ApiModel(value = "洽谈接运信息", description = "洽谈接运信息")
public class NegotiationTransportItem extends BaseItem {
    /**
     * 业务编码
     */
    @ApiModelProperty(value = "业务编码", name = "businessCode", position = 1)
    private String businessCode;

    /**
     * 车辆用途编码
     */
    @ApiModelProperty(value = "车辆用途编码", name = "transportPurposeCode", position = 2)
    @JsonIgnore
    private Integer transportPurposeCode;

    /**
     * 车辆用途
     */
    @ApiModelProperty(value = "车辆用途", name = "transportPurpose", position = 3)
    @AnDict(dict = EDictCode.TRANSPORT_CAR_USE, ref = "transportPurposeCode")
    private String transportPurpose;

    /**
     * 预约时间
     */
    @ApiModelProperty(value = "预约时间", name = "appointmentTime", position = 4)
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date appointmentTime;

    /**
     * 车辆类型编码
     */
    @ApiModelProperty(value = "车辆类型编码", name = "transportCarTypeCode", position = 5)
    @JsonIgnore
    private Integer transportCarTypeCode;

    /**
     * 车辆类型
     */
    @ApiModelProperty(value = "车辆类型", name = "transportCarType", position = 6)
    @AnDict(dict = EDictCode.TRANSPORT_CAR_TYPE, ref = "transportCarTypeCode")
    private String transportCarType;

    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号", name = "transportCarNo", position = 7)
    private String transportCarNo;

    /**
     * 司机姓名
     */
    @ApiModelProperty(value = "司机姓名", name = "driverUserName", position = 8)
    private String driverUserName;

    /**
     * 司机电话
     */
    @ApiModelProperty(value = "司机电话", name = "driverUserTelephone", position = 9)
    private String driverUserTelephone;

    /**
     * 抬尸工
     */
    @ApiModelProperty(value = "抬尸工", name = "transportTaskPorterNames", position = 10)
    private String transportTaskPorterNames;

    /**
     * 接尸地点
     */
    @ApiModelProperty(value = "接尸地点", name = "transportPlace", position = 11)
    private String transportPlace;


    /**
     * 接运联系人
     */
    @ApiModelProperty(value = "接运联系人", name = "transportLinkman", position = 12)
    private String transportLinkman;

    /**
     * 接运联系电话
     */
    @ApiModelProperty(value = "接运联系电话", name = "transportTelephone", position = 13)
    private String transportTelephone;

    /**
     * 出车时间
     */
    @ApiModelProperty(value = "出车时间", name = "departureTime", position = 14)
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date departureTime;

    /**
     * 回车时间
     */
    @ApiModelProperty(value = "回车时间", name = "returnTime", position = 15)
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date returnTime;

    /**
     * 流程状态
     */
    @ApiModelProperty(value = "流程状态", name = "processStateCode", position = 16)
    @JsonIgnore
    private Integer processStateCode;

    /**
     * 流程状态
     */
    @ApiModelProperty(value = "流程状态", name = "processState", position = 47)
    @AnDict(dict = EDictCode.TRANSPORT_CAR_TASK_STATUS, ref = "processStateCode")
    private String processState;

    /**
     * 是否返空
     */
    @ApiModelProperty(value = "是否返空", name = "asEmptyCar", position = 18)
    private Integer asEmptyCar;

    /**
     * 行驶里程
     */
    @ApiModelProperty(value = "行驶里程", name = "transportDistance", position = 19)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal transportDistance;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", name = "remark", position = 20)
    private String remark;

    /**
     * 业务费用与物品服务
     */
    @ApiModelProperty(value = "业务费用与物品服务", name = "charges", position = 21)
    private NegotiationBusinessCharges charges;

    public String getBusinessCode() {
        return businessCode;
    }

    public NegotiationTransportItem setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public Integer getTransportPurposeCode() {
        return transportPurposeCode;
    }

    public NegotiationTransportItem setTransportPurposeCode(Integer transportPurposeCode) {
        this.transportPurposeCode = transportPurposeCode;
        return this;
    }

    public String getTransportPurpose() {
        return transportPurpose;
    }

    public NegotiationTransportItem setTransportPurpose(String transportPurpose) {
        this.transportPurpose = transportPurpose;
        return this;
    }

    public Date getAppointmentTime() {
        return appointmentTime;
    }

    public NegotiationTransportItem setAppointmentTime(Date appointmentTime) {
        this.appointmentTime = appointmentTime;
        return this;
    }

    public Integer getTransportCarTypeCode() {
        return transportCarTypeCode;
    }

    public NegotiationTransportItem setTransportCarTypeCode(Integer transportCarTypeCode) {
        this.transportCarTypeCode = transportCarTypeCode;
        return this;
    }

    public String getTransportCarType() {
        return transportCarType;
    }

    public NegotiationTransportItem setTransportCarType(String transportCarType) {
        this.transportCarType = transportCarType;
        return this;
    }

    public String getTransportCarNo() {
        return transportCarNo;
    }

    public NegotiationTransportItem setTransportCarNo(String transportCarNo) {
        this.transportCarNo = transportCarNo;
        return this;
    }

    public String getDriverUserName() {
        return driverUserName;
    }

    public NegotiationTransportItem setDriverUserName(String driverUserName) {
        this.driverUserName = driverUserName;
        return this;
    }

    public String getDriverUserTelephone() {
        return driverUserTelephone;
    }

    public NegotiationTransportItem setDriverUserTelephone(String driverUserTelephone) {
        this.driverUserTelephone = driverUserTelephone;
        return this;
    }

    public String getTransportTaskPorterNames() {
        return transportTaskPorterNames;
    }

    public NegotiationTransportItem setTransportTaskPorterNames(String transportTaskPorterNames) {
        this.transportTaskPorterNames = transportTaskPorterNames;
        return this;
    }

    public String getTransportPlace() {
        return transportPlace;
    }

    public NegotiationTransportItem setTransportPlace(String transportPlace) {
        this.transportPlace = transportPlace;
        return this;
    }

    public String getTransportLinkman() {
        return transportLinkman;
    }

    public NegotiationTransportItem setTransportLinkman(String transportLinkman) {
        this.transportLinkman = transportLinkman;
        return this;
    }

    public String getTransportTelephone() {
        return transportTelephone;
    }

    public NegotiationTransportItem setTransportTelephone(String transportTelephone) {
        this.transportTelephone = transportTelephone;
        return this;
    }

    public Date getDepartureTime() {
        return departureTime;
    }

    public NegotiationTransportItem setDepartureTime(Date departureTime) {
        this.departureTime = departureTime;
        return this;
    }

    public Date getReturnTime() {
        return returnTime;
    }

    public NegotiationTransportItem setReturnTime(Date returnTime) {
        this.returnTime = returnTime;
        return this;
    }

    public Integer getProcessStateCode() {
        return processStateCode;
    }

    public NegotiationTransportItem setProcessStateCode(Integer processStateCode) {
        this.processStateCode = processStateCode;
        return this;
    }

    public String getProcessState() {
        return processState;
    }

    public NegotiationTransportItem setProcessState(String processState) {
        this.processState = processState;
        return this;
    }

    public Integer getAsEmptyCar() {
        return asEmptyCar;
    }

    public NegotiationTransportItem setAsEmptyCar(Integer asEmptyCar) {
        this.asEmptyCar = asEmptyCar;
        return this;
    }

    public BigDecimal getTransportDistance() {
        return transportDistance;
    }

    public NegotiationTransportItem setTransportDistance(BigDecimal transportDistance) {
        this.transportDistance = transportDistance;
        return this;
    }

    public String getRemark() {
        return remark;
    }

    public NegotiationTransportItem setRemark(String remark) {
        this.remark = remark;
        return this;
    }

    public NegotiationBusinessCharges getCharges() {
        return charges;
    }

    public NegotiationTransportItem setCharges(NegotiationBusinessCharges charges) {
        this.charges = charges;
        return this;
    }
}
